From c4d326366f6bde8a6d49c8147f13c0a73d694867 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Wed, 30 Aug 2017 17:29:01 +0200 Subject: [PATCH] extensions: more direct trc dispatch --- babl/babl-fish-path.c | 2 +- extensions/cairo.c | 16 ++++++++-------- extensions/float.c | 42 +++++++++++++++++++++--------------------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/babl/babl-fish-path.c b/babl/babl-fish-path.c index f89aae1..dd7c018 100644 --- a/babl/babl-fish-path.c +++ b/babl/babl-fish-path.c @@ -666,7 +666,7 @@ babl_fish_path (const Babl *source, if (!done) { - if(1)babl_conversion_class_for_each (show_item, (void*)source->format.space); + if(0)babl_conversion_class_for_each (show_item, (void*)source->format.space); //babl_format_class_for_each (show_fmt, NULL); //babl_model_class_for_each (show_fmt, NULL); } diff --git a/extensions/cairo.c b/extensions/cairo.c index 99cca15..c53da2a 100644 --- a/extensions/cairo.c +++ b/extensions/cairo.c @@ -300,11 +300,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src, float alpha = *fsrc++; if (alpha >= 1.0) { - int val = _babl_trc_from_linearf (trc[2], blue) * 0xff + 0.5f; + int val = trc[2]->trc.fun_from_linear (trc[2], blue) * 0xff + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; - val = _babl_trc_from_linearf (trc[1], green) * 0xff + 0.5f; + val = trc[1]->trc.fun_from_linear (trc[1], green) * 0xff + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; - val = _babl_trc_from_linearf (trc[0], red) * 0xff + 0.5f; + val = trc[0]->trc.fun_from_linear (trc[0], red) * 0xff + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; *cdst++ = 0xff; } @@ -316,11 +316,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src, else { float balpha = alpha * 0xff; - int val = _babl_trc_from_linearf (trc[2], blue) * balpha + 0.5f; + int val = trc[2]->trc.fun_from_linear (trc[2], blue) * balpha + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; - val = _babl_trc_from_linearf (trc[1], green) * balpha + 0.5f; + val = trc[1]->trc.fun_from_linear (trc[1], green) * balpha + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; - val = _babl_trc_from_linearf (trc[0], red) * balpha + 0.5f; + val = trc[0]->trc.fun_from_linear (trc[0], red) * balpha + 0.5f; *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val; *cdst++ = balpha + 0.5f; } @@ -346,7 +346,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src, float alpha = *fsrc++; if (alpha >= 1.0) { - int val = _babl_trc_from_linearf (trc[0], gray) * 0xff + 0.5f; + int val = trc[0]->trc.fun_from_linear (trc[0], gray) * 0xff + 0.5f; val = val >= 0xff ? 0xff : val <= 0 ? 0 : val; *cdst++ = val; *cdst++ = val; @@ -361,7 +361,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src, else { float balpha = alpha * 0xff; - int val = _babl_trc_from_linearf (trc[0], gray) * balpha + 0.5f; + int val = trc[0]->trc.fun_from_linear (trc[0], gray) * balpha + 0.5f; val = val >= 0xff ? 0xff : val <= 0 ? 0 : val; *cdst++ = val; *cdst++ = val; diff --git a/extensions/float.c b/extensions/float.c index cfe7b2b..0ebe81a 100644 --- a/extensions/float.c +++ b/extensions/float.c @@ -45,9 +45,9 @@ conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, while (n--) { float alpha = fsrc[3]; - *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++) * alpha; - *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++) * alpha; - *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++) * alpha; + *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha; + *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha; + *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha; *fdst++ = *fsrc++; } return samples; @@ -78,17 +78,17 @@ conv_rgbAF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, } else if (alpha >= 1.0) { - *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++); + *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha; + *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha; + *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha; *fdst++ = *fsrc++; } else { float alpha_recip = 1.0 / alpha; - *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++ * alpha_recip) * alpha; - *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++ * alpha_recip) * alpha; - *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++ * alpha_recip) * alpha; + *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++ * alpha_recip) * alpha; + *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++ * alpha_recip) * alpha; + *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++ * alpha_recip) * alpha; *fdst++ = *fsrc++; } } @@ -109,9 +109,9 @@ conv_rgbaF_linear_rgbaF_gamma (const Babl *conversion,unsigned char *src, while (n--) { - *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++); + *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++); + *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++); + *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++); *fdst++ = *fsrc++; } return samples; @@ -130,9 +130,9 @@ conv_rgbF_linear_rgbF_gamma (const Babl *conversion,unsigned char *src, while (n--) { - *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++); - *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++); + *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++); + *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++); + *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++); } return samples; } @@ -151,9 +151,9 @@ conv_rgbaF_gamma_rgbaF_linear (const Babl *conversion,unsigned char *src, while (n--) { - *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++); - *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++); - *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++); + *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++); + *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++); + *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++); *fdst++ = *fsrc++; } return samples; @@ -172,9 +172,9 @@ conv_rgbF_gamma_rgbF_linear (const Babl *conversion,unsigned char *src, while (n--) { - *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++); - *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++); - *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++); + *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++); + *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++); + *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++); } return samples; } -- 2.30.2